(function ($util) {
    //设置跨域session
    axios.defaults.withCredentials = true
    axios.defaults.baseURL="http://localhost:80"

    //加载界面
    $util.openLoading = function() {
        const loading = Vue.prototype.$loading({           // 声明一个loading对象
            lock: true,                             // 是否锁屏
            text: '正在加载...',                     // 加载动画的文字
            spinner: 'el-icon-loading',             // 引入的loading图标
            background: 'rgba(0, 0, 0, 0.3)',       // 背景颜色
            target: '.sub-main',                    // 需要遮罩的区域
            body: true,
            customClass: 'mask'                     // 遮罩层新增类名
        })
        setTimeout(function () {            // 设定定时器，超时5S后自动关闭遮罩层，避免请求失败时，遮罩层一直存在的问题
            loading.close();                        // 关闭遮罩层
        },5000)
        return loading;
    }

    //get方法
    $util.get = function(_url, _params, _callback){
        let rLoading = this.openLoading()
        axios.get(_url, _params)
            .then(resp => {
                rLoading.close()
                _callback(resp.data)
            })
    }

    //post方法
    $util.post = function(_url, _params, _callback){
        let rLoading = this.openLoading()
        axios.post(_url, _params)
            .then(resp => {
                rLoading.close()
                _callback(resp.data)
            })
    }

    //1、获取教室列表
    $util.getRoomList = function(callback){
        $util.get('/api/room/list', null, callback)
    }

    //2、根据教室查询设备列表
    $util.getDeviceByRoom = function(roomCode, page, callback){
        $util.get(`/api/devices_of_room/${roomCode}/${page}`,null, callback)
    }

    //3、修改设备状态
    $util.saveDeviceStatus = function(deviceInfo, callback){
        $util.post(`/api/device_save_status/${deviceInfo.code}`, Qs.stringify({status: deviceInfo.status}), callback)
    }

    //加载用户信息
    $util.loadUserInfo = function(){
        let userInfo = JSON.parse(window.localStorage.getItem('user_info'))
        return userInfo
    }

    //保存用户信息
    $util.saveUserInfo = function(userInfo){
        window.localStorage.setItem('user_info', JSON.stringify(userInfo))
    }

    //用户登录
    $util.userLogin = function(login_form, callback){
        //登录
        axios.post('/login', Qs.stringify(login_form))
            .then(resp => {
                callback(resp)
            })
    }

    //获取用户信息
    $util.getUserById = function (id, callback) {
        //异步获取用户信息
        axios.get('/getUserById/' + id)
            .then(resp => {
                callback(resp.data)
            })
    }

})(window.$util = {});
